﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Servicios;
using Dominio;
using UI.Miembros;
using System.IO;

namespace UI
{
    public partial class Videos : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session[ConstantesDeSesion.Usuario] != null)
            {
                Usuario usuario = (Usuario)Session[ConstantesDeSesion.Usuario];
                if (((Security)Session[ConstantesDeSesion.Security]).RolPermitido(usuario.Rol, ConstantesFuncionalidades.Usuarios))
                {
                    //hacer algo en el inicio de pagina
                    if (!IsPostBack)
                        CargarCheckBoxListVideos();
                }
                else
                {
                    //Usuario  no autorizado
                    WebUtils.MsgBox("Usuario no Autorizado");
                    Response.Redirect("~/Miembros/Busquedas.aspx");
                }
            }
            else
            {
                //Usuario no autenticado
                WebUtils.MsgBox("Usuario no Autenticado");
                Response.Redirect("~/Login.aspx");
            }
        }

        private void CargarCheckBoxListVideos()
        {
            if (Directory.Exists(VideoServiceImpl.VIDEO_LOCATION))
            {
                DirectoryInfo dir = new DirectoryInfo(VideoServiceImpl.VIDEO_LOCATION);
                IList<string> videos = new List<string>();
                foreach(FileInfo video in dir.GetFiles("*.wmv"))
                {
                    videos.Add(video.Name);
                }
                CheckBoxL_videos.DataSource = videos;
                CheckBoxL_videos.DataBind();
            }
        }

        protected void Subir_Video_Click(object sender, EventArgs e)
        {
            if (FileUpload1.HasFile && FileUpload1.PostedFile != null) 
            {  
                string fn = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);
                if (ValidarExtensionDeArchivo(fn))
                {

                    try
                    {
                        FileUpload1.PostedFile.SaveAs(VideoServiceImpl.VIDEO_LOCATION+"\\"+fn);
                        WebUtils.MsgBox("El archivo ha sido cargado.");
                        CargarCheckBoxListVideos();
                    }
                    catch (Exception ex)
                    {
                        WebUtils.MsgBox("Error: No es posible subir el Video\n Vuelva a intentar");
                    }
                }
                else
                {
                    WebUtils.MsgBox("Error: La extension del archivo no es correcta.\nDebe ser un archivo WMV"); 
                }
            } 
            else
            {
                WebUtils.MsgBox("Seleccione un archivo que cargar."); 
            }     
        }

        private bool ValidarExtensionDeArchivo(string nombreArchivo) 
        {
            string[] dividido = nombreArchivo.Split('.');
            string extension = dividido.Last();
            return extension.ToLower().Equals("wmv");
        }

        protected void Button_borrar_Click(object sender, EventArgs e)
        {
            foreach (ListItem item in CheckBoxL_videos.Items)
            {
                if (item.Selected)
                {
                    System.IO.File.Delete(VideoServiceImpl.VIDEO_LOCATION+"\\" +item.Value);
                    WebUtils.MsgBox("El archivo ha sido eliminado.");
                }
            }
            CargarCheckBoxListVideos();
        }
    }
}